namespace	Z	{

//------------------------------------------------------------------------------------------------------------------------
template<typename Distribution>
RandomNumberGenerator<Distribution>::RandomNumberGenerator()
:	mVariateGenerator(Engine(static_cast<unsigned>(std::time(0))), Distribution())
{	
}

template<typename Distribution>
RandomNumberGenerator<Distribution>::~RandomNumberGenerator()
{
}

template<typename Distribution>
typename RandomNumberGenerator<Distribution>::input_type RandomNumberGenerator<Distribution>::rand(input_type min, input_type max)
{
	mVariateGenerator.distribution()	= Distribution(min, max);
	return mVariateGenerator();
}

_ZMainApi	extern	int	random(int min, int max);
_ZMainApi	extern	float	random(float min, float max);

}